﻿#ifndef PLUGINDESC_H
#define PLUGINDESC_H

#include <QObject>
#include <QJsonArray>

#include "Interface_Global.h"

namespace CVV
{

namespace Interface
{

/**
 * @brief 流程单元插件信息类
 */
class INTERFACE_EXPORT PluginDesc : public QObject
{
    Q_OBJECT
public:
     explicit PluginDesc(QObject *parent = nullptr);
    virtual ~PluginDesc();

     PluginDesc(const PluginDesc &pluginDesc);
     PluginDesc& operator=(const PluginDesc &pluginDesc);

    QString code() const;
    void setCode(const QString &code);

    QString Name() const;
    void setName(const QString &Name);

    QString category() const;
    void setCategory(const QString &category);

    /**
     * @brief categoryIcon
     * @return
     */
    QString categoryIcon() const;
    void setCategoryIcon(const QString &icon);

    QString version() const;
    void setVersion(const QString &version);

    QJsonArray params() const;
    void setParams(const QJsonArray &params);

    QString iconPath() const;
    void setIconPath(const QString &iconPath);

    QString description() const;
    void setDescription(const QString &desc);

private:
    /**
     * @brief 单元插件code
     */
    QString m_code;
    /**
     * @brief 单元插件名称 单元Button显示
     */
    QString m_Name;
    /**
     * @brief 单元插件类型 如:input类型
     */
    QString m_category;

    /**
     * @brief m_categoryIcon 单元插件分类icon
     */
    QString m_categoryIcon;
    /**
     * @brief 单元插件版本
     */
    QString m_version;

    /**
     * @brief 单元插件参数
     */
    QJsonArray m_params;
    /**
     * @brief 图标路径
     */
    QString m_iconPath;

    /**
     * @brief m_description 描述
     */
    QString m_description;

};

}

}

#endif // FLOWCELL_H
